Field of the Invention
The present invention relates to managed resource management in a data center and more particularly to data cache support for managed resource management.
Description of the Related Art
The modern data center includes a multiplicity of different devices providing a multiplicity of resources which in combination, provide one or more computing services to end users over one or more computer communications networks. Within the data center, it is essential to monitor the state of each device so that unacceptable service interruptions can be avoided. Managing the state of a single device is simplistic in so far as an administrator need only physically view the operation of the single device. However, managing the state of an incredibly large number of devices does not allow for the physical viewing of each device by an administrator. Instead, administrators rely upon centralized management tools to collect and process state data from a multiplicity of monitored devices so as to programmatically present the state of the managed devices to the administrator and to alert the administrator of any faults detected amongst the managed devices.
In practice, managing the state of each individual resource is time consuming, computationally expensive and impractical. Therefore, oftentimes managing the state of different resources in a data center requires aggregation. Aggregation refers to the collection of state data for a set of resources, related or unrelated, and the presentation of a single aggregate state for the resources in the set. To achieve a higher degree of aggregation, techniques to minimize the state data processing at the centralized management solution must be employed. However, one of the elements of state data processing that is often a limiting factor to scaling in an aggregated solution is the network bandwidth required to communicate state data to the centralized management solution. Therefore, it is common to utilize programming techniques, such as caching of data, to provide for greater aggregation per instance of management software by caching the state of aggregated sets of managed resources for later consumption by the centralized management solution.
Maintaining the consistency of cached data with the actual state of the corresponding set of aggregated resources is not without challenge. At present, it is widely known to utilize the processing of emitted alerts from monitored resources in order to trigger a refresh of cached data. To work properly, alert based refreshing requires all alerts to be reliably delivered in a timely fashion. Yet, in a typical data communications network, this reliable, timely delivery cannot be guaranteed. As such, the management solution periodically refreshes cached data by polling the managed resources. By polling the managed resources, it is guaranteed that the solution captures the correct state of the managed resources contemporaneously with the polling.
Of course, the polling process incurs a transactional cost in situations where the cached data already was accurate and need not have been refreshed. The cost of unproductive polling then translates into either a reduction of possible scale of management by the device given the cost of polling for large numbers of devices, or a loss of fidelity in the cached data due to a required large interval of polling so as to avoid overtaxing the network. To address this paradox, management solutions attempt to combine both methods, by relying upon alerts to trigger a cache refresh but utilizing a periodic polling cycle to ensure that any missed alerts are gracefully handled in a bounded time—but in doing so, a less than optimal solution results.